package com.qf.spring2202.ioc.dao.impl;

import com.qf.spring2202.ioc.dao.UserDao;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class UserDaoImplCache implements UserDao {

    public UserDaoImplCache() {
        System.out.println("1. 调用了UserDaoImplCache的无参构造函数");
    }

    private String name ;

    private Integer age;

    private String filepath;

    private BufferedReader bufferedReader;

    /**
     * 自定义对象初始化方法
     * 注意，需要在配置文件中添加 init-method="init"
     */
    public void init(){
        System.out.println("3. 调用对象的自定义的init方法 ");
        if (this.filepath!=null){
            try {
                this.bufferedReader = new BufferedReader(new FileReader(filepath));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 自定义销毁对象时调用的方法 ，作业一般是关闭资源
     * 注意，需要在配置文件中添加
     */
    public void close(){
        System.out.println("4. 调用对象的自定义的销毁方法：close ");
        try {
            this.bufferedReader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }



    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
        System.out.println("2. 调用了stter方法：setName");
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
        System.out.println("2. 调用了stter方法：setAge");
    }

    public String getFilepath() {
        return filepath;
    }

    public void setFilepath(String filepath) {
        this.filepath = filepath;
        System.out.println("2. 调用了stter方法：setFilepath");
    }

    @Override
    public void helloUser() {
        System.out.println("访问缓存");
        System.out.println("hello user from UserDaoImplCache ");
    }
}
